package com.fgxia.user.domain.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.Translation;
import com.ruoyi.common.constant.TransConstant;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * order invoice vo
 *
 * @author yyt
 */
@Data
public class OrderInvoiceVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 订单号
     */
    private String orderNo;

    private String carType;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, other = "car_type", mapper = "carType")
    private String carTypeLabel;

    private String carUseType;

    /**
     * 剩余可开票金额
     */
    private BigDecimal remainingInvoiceAmount;

    /**
     * 寄件人省
     */
    @ExcelProperty(value = "寄件人省")
    private Long sendProvince;

    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "sendProvince")
    private Long sendProvinceLabel;

    /**
     * 寄件人市
     */
    private Long sendCity;

    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "sendCity")
    private String sendCityLabel;

    /**
     * 寄件人区
     */
    private Long sendDistrict;

    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "sendDistrict")
    private String sendDistrictLabel;

    /**
     * 寄件人地址
     */
    private String sendAddress;

    /**
     * 收件人省
     */
    private Long receiverProvince;

    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "receiverProvince")
    private String receiverProvinceLabel;

    /**
     * 收件人市
     */
    private Long receiverCity;

    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "receiverCity")
    private String receiverCityLabel;

    /**
     * 收件人区
     */
    private Long receiverDistrict;

    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "receiverDistrict")
    private String receiverDistrictLabel;

    /**
     * 收件人地址
     */
    private String receiverAddress;

    /**
     * 订单创建时间
     */
    private Date createTime;
}
